Server consolidation is becoming one of the top priorities for many IT departments because the traditional way of dedicating one server to a single application will leave many servers under-utilized for most of the time. By aggregating workloads from separate machines into a small number of servers, we can boost the resource utilization rate, which in consequence save the power and space for enterprise data centers. With the recent resurgence of virtualization technology, the server consolidation can now be achieved by hosting multiple virtual machines (VM) in one physical machine, each of which encapsulates one application separately. The virtualization provides an abstract layer between the operating system and the hardware, which enables multiple VMs to share the same physical machine fairly with the minimum impact of system performance.
While server consolidation through virtualization brings a lot of advantages, some of the benefits are offset by the added system management complexity introduced by the consolidation. Instead of managing numerous physical machines, administrators are now facing a large number of virtual machines concentrated in a much dense, complex, and shared environment, in which the impacts of hardware failures, human errors, and security breaches can be vastly magnified. For example, any situation that requires a physical server re-boot, such as the hardware failure or system maintenance, will affect all the virtual machines in that physical machine rather than a single application. Similarly, the increased sharing of hardware by multiple applications may enhance the possibilities of revealing sensitive information to potential adversarial applications, which will compromise the security and privacy requirements of the system.
Accordingly, a method and an apparatus are needed to achieve server consolidation under multiple constraints.